/*
 * MotorServer.cpp
 *
 *  Created on: 18/06/2013
 *      Author: Juliansci
 */

#include "MotorServer.h"
#include "../modelo/util/Timer.h"
#include <iostream>
#include "Server.h"
#include <pthread.h>
using namespace std;

void MotorServer::run() {
	Timer timer;
	this->server->getEscenario()->comenzarAutomatas();

	while (this->server->getTrabajando()) {
		timer.comenzar();
		Sleep(17);
		cout << "dentro while" << endl;
		list<EnemigoAutomata*> automatas = this->server->getEscenario()->getEnemigosAutomatas();
		cout << "cantidad automatas: "  << automatas.size()<< endl;

		this->server->getEscenario()->updateEstadoAutomatas();
		this->avanzarAnimacionesAutomatas(timer.get_ticks());
	}

}

void MotorServer::avanzarAnimacionesAutomatas(int tiempo) {
	cout << "avanza automatas " << endl;
	list<EnemigoAutomata*> automatas =
			this->server->getEscenario()->getEnemigosAutomatas();
	list<EnemigoAutomata*>::iterator itAutomatas = automatas.begin();
	for (; itAutomatas != automatas.end(); ++itAutomatas) {
		cout << "avanza personaje" << endl;
		(*itAutomatas)->getPersonajeAutomata()->avanzarAnimacion(tiempo);
		cout << "desp avanza personaje" << endl;
	}
}

void MotorServer::inicializarAutomata() {
	//map<string, TipoEntidad*> mapaTipoEntidad = this->server->builderJuego->getMapaTipoEntidad();
	//this->vista.iniciar(mapaTipoEntidad);
}

